package esercizi_fondamenti;

public class Aprile2006 {
	
	public static boolean verificaMatrice(int[][]M){
		boolean controllo=false;
		int sommaPrima=0;
		for(int j=0; j<M[0].length; j++){
			sommaPrima=sommaPrima+M[0][j];
		}
		
		for(int i=0; i<M.length; i++){
			int somma=0;
			for(int j=0; j<M[0].length; j++)
				somma= somma+M[i][j]; 
			
			if(sommaPrima!=somma) controllo= false;
			else controllo=true;
		}
		return controllo;
		
	}

	
	public static int[] estraiArray(int[][]m){
		int n=m.length;
		int[]temp=new int[(n*n-n)/2];
		int k=0;
		for(int i=0; i<m.length; i++)
			for(int j=0; j<=1; j++){
				boolean presente=false;
				for(int l=0; l<k && !presente; l++)
				if(temp[l]==m[i][j]) presente = true;
				if(!presente){
					temp[k]=m[i][j];
					k++;
				}
			}
		int[]ris=new int[k];
		System.arraycopy(temp, 0, ris, 0, k);
		return ris;
		
	}
	
	public static int[][] azzeraMatrice(int[][] m, int[] v){
		int[][] h=new int[m.length][m.length/2];
		int c=m.length-h[0].length;
		for(int i=0; i<h.length; i++){
			for(int j=0; j<h[0].length; j++){
			if(presente(v,m[i][c+j]))
				h[i][j]=0;
			else
				h[i][j]=m[i][c+j];
		}
		}
		return h;
	}
	
	static boolean presente(int[] v, int k){
		for(int i=0; i<v.length; i++)
				if(v[i]==k) return true;
			return false;
		
	}

	public static void main(String[] args) {
		
		int[][]m={{1,3,0,6},{2,1,7,0},{4,3,1,2},{8,1,1,0}};
		int[]diag=estraiArray(m);
		for(int i=0; i<diag.length; i++ ){
			System.out.print(diag[i]+" ");
		}
		System.out.println();
		int[]v={5,7,2,3};
		//for(int k=0; k<v.length;k++)
			//System.out.print(v[k]+" ");
		int[][]azz=azzeraMatrice(m,v);
		for(int j=0; j<azz.length; j++){
			for(int z=0; z<azz[0].length; z++){
			System.out.print(azz[j][z]+" ");}
			System.out.println();
		}
		
	}

}
